package com.doitedu.day06

import scala.util.Random

/**
 * @Date: 22.6.26 
 * @Author: HANGGE
 * @qq: 598196583
 * @Tips: 学大数据 ,到多易教育
 * @Description:
 * 类型匹配  入门示例
 */
object _02模式匹配 {
  def main(args: Array[String]): Unit = {
    val ls = List[Any](1, 2, 3, 4.0, 5.0, "hello", "java", 'a', true)

    val random = new Random()
    val index = random.nextInt(ls.size)
    // 获取集合中的随机元素
    val ele = ls(index)
/*
  println(ele)
    ele match {
      // 类型匹配  判断当前元素是否是Int类型  如果是转换成Int类型处理
      // 如果不是Int类型 则执行下面的代码
      case x:Int=>println(x*10)
      case  x:Double=>x*100
      case  x:String=>x.toUpperCase()
      case  _ =>  println(s"不处理的数类型......$ele")
    }
*/


 /*   for (elem <- ls) {
      elem match {
        // 类型匹配  判断当前元素是否是Int类型  如果是转换成Int类型处理
        // 如果不是Int类型 则执行下面的代码
        case  x:Int=>println(x*10)
        case  x:Double=>println(x*100)
        case  x:String=>println(x.toUpperCase)
        case  _ =>  println(s"不处理的数类型......$elem")
      }

    }
*/
    ls.map(e=>e match {
      case  x:Int=>println(x*10)
      case  x:Double=>println(x*100)
      case  x:String=>println(x.toUpperCase)
      case  _ =>  println(s"不处理的数类型......$e")
    })


    ls.map(_ match {
      case  x:Int=>println(x*10)
      case  x:Double=>println(x*100)
      case  x:String=>println(x.toUpperCase)
      case  o:Any =>  println(s"不处理的数类型......$o")
    })


    ls.map{
      case  x:Int=>println(x*10)
      case  x:Double=>println(x*100)
      case  x:String=>println(x.toUpperCase)
      case  o:Any =>  println(s"不处理的数类型......$o")
    }
  }

}
